﻿
'Description:基础数据通用查询类接口
'Copyright (c) : 通力凯顿（北京）系统集成有限公司
'Writer:Yangsj
'create Date:2017-4-14
'Rewriter:
'Rewrite Date:
Imports Camstar.WebClient.WebServicesProxy.InSiteWebServices
Imports BusinessRule.DTO

Public Interface uLMSCommonIBusiness
    ''' <summary>
    ''' 根据产品名称获取产品列表
    ''' Create：YangSJ
    ''' </summary>s
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductInfoByName(ByVal strProductName As String, ByVal strProductRev As String) As DataTable

    ''' <summary>
    ''' 根据工区类型获取信息 Yuxj20190516
    ''' </summary>
    ''' <param name="QueryCondition"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterWithWCTYPE(ByVal QueryCondition As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 根据产品id获取产品列表 CREATE tianFW 2018年1月22日
    ''' </summary>
    ''' <param name="strProductID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductInfoByID(ByVal strProductID As String) As System.Data.DataTable

    ''' <summary>
    ''' 根据产品获取工艺
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowByProduct(ByVal product As RevisionedObjectRef) As RevisionedObjectRef
    ''' <summary>
    ''' 根据产品ID获取工艺列表，包括子工艺，按车间过滤
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowWithSubByProductID(ByVal strProductID As String, ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 根据工艺ID获取其他版本工艺
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowOtherRevision(ByVal strWorkflowID As String, ByVal strWorkflowBaseID As String) As DataTable

    ''' <summary>
    ''' 获取机型列表
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductFamily(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 获取人员列表根据角色
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmplyeeListByRole(ByVal strRoleName As String, ByVal strFactoryID As String) As DataTable
    ''' <summary>
    ''' 获取车间列表
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFactory(ByVal para As Dictionary(Of String, String)) As DataTable
    ''' <summary>
    ''' 获取工区列表
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterByFacoryID(ByVal strFacoryID As String) As DataTable

    ''' <summary>
    ''' 获取工区列表 v2.0 create tianFW 2018年3月20日
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterByFacoryID(ByVal strFacoryID As String, ByVal IsNotNormal As Boolean) As System.Data.DataTable

    ''' <summary>
    ''' 通过工区ID获取班组列表  Create by tianFW
    ''' </summary>
    Function GetTeam(ByVal workcenterID As String) As System.Data.DataTable

    ''' <summary>
    ''' 获取工艺路线所属工艺列表
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowStepsByWorkFlow(ByVal workflow As RevisionedObjectRef) As DataTable
    ''' <summary>
    ''' 获取工艺路线所属工艺列表
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowSetpsByWorkflowID(ByVal strWorkflowID As String) As System.Data.DataTable
    Function GetWorkFlowSetpsByWorkflowIDandContainerID(ByVal para As Dictionary(Of String, String)) As System.Data.DataTable
    ''' <summary>
    ''' 获取批次最大序号
    ''' Create：YangSJ
    ''' </summary>
    ''' <param name="strPrefix">批次名称</param>
    ''' <param name="numberLength">序号长度</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNewChildContainerNextIndex(ByVal strPrefix As String, ByVal numberLength As Integer) As Integer

    ''' <summary>
    ''' 获取已经创建的子批次 createt tianFW 2018年4月2日
    ''' </summary>
    ''' <param name="containerName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetHavedCreateChildContainerInfo(ByVal containerName As String) As DataTable

    ''' <summary>
    ''' 获取批次最大序号
    ''' Create：YangSJ
    ''' </summary>
    ''' <param name="strPrefix">批次名称</param>
    ''' <param name="numberLength">序号长度</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNewContainerNextIndex(ByVal strPrefix As String, ByVal numberLength As Integer) As Integer

    ''' <summary>
    ''' 获取批次指定字段值
    ''' Create：YangSJ
    ''' </summary>
    ''' <param name="strContainerName">批次名称</param>
    ''' <param name="strFieldName">字段名称</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerFieldValue(ByVal strContainerName As String, ByVal strFieldName As String) As String
    ''' <summary>
    ''' 获取工厂配置属性表
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFatoryAttributes(ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 获取指定工厂配置属性
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFatoryAttributes(ByVal strFactoryID As String, ByVal strAttrName As String) As String
    ''' <summary>
    ''' 获取企业配置属性
    ''' Create：YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEnterpriseAttributes(ByVal strAttrName As String) As String
    ''' <summary>
    ''' 获取除当前工序之后的所有工序
    ''' </summary>
    ''' <param name="QueryCondition"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowStepsWithoutSelf(ByVal QueryCondition As Dictionary(Of String, String)) As DataTable
    ''' <summary>
    ''' 获取当前用户所属车间下的其他工区
    ''' </summary>
    ''' <param name="QueryCondition"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterWithoutSelf(ByVal QueryCondition As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 获取产品名版本工序列表
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowStepsByProduct(ByVal strProductName As String, ByVal strProductRev As String) As DataTable
    ''' <summary>
    ''' 根据teamid获取人员信息
    ''' create tianFW
    ''' </summary>
    ''' <param name="stringTeamName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeInfoByTeamId(ByVal stringTeamName As String) As DataTable
    ''' <summary>
    ''' 根据employeeid获取资源信息
    ''' create tianFW
    ''' </summary>
    ''' <param name="employeeid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetResourceDefByemployeeid(ByVal employeeid As String) As DataTable

    ''' <summary>
    ''' 根据Factoryid获取资源信息
    ''' create tianFW
    ''' </summary>
    ''' <param name="Factoryid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetResourceDefByFactoryid(ByVal Factoryid As String) As DataTable

    ''' <summary>
    ''' 根据组名获取报废原因
    ''' Create:YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetLossReasonByGroupName(ByVal strGroupName As String) As DataTable

    ''' <summary>
    ''' 获取报废原因组
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetLossReasonGroupData() As DataTable

    ''' <summary>
    ''' 根据组ID获取报废原因
    ''' Create:YangSJ
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetLossReasonByGroupID(ByVal strGroupID As String) As DataTable

    ''' <summary>
    ''' 获取NDO原因代码根据原因代码组
    ''' add:Wangjh 20190328
    ''' </summary>
    ''' <param name="reasonTable"></param>
    ''' <param name="groupName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNDOReasionByGroupName(ByVal reasonTable As String, ByVal groupName As String) As DataTable

    ''' <summary>
    ''' 根据父ContainerID查询ContainerID和ContainerName
    ''' create tianFW
    ''' </summary>
    ''' <param name="containerID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerInfoByPerContianerID(ByVal containerID As String) As DataTable
    Function GetContainerInfoByPerContianerID2(ByVal containerID As String) As DataTable
    ''' <summary>
    ''' 获取当前用户所属企业的其他分厂
    ''' </summary>
    ''' <param name="factoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFactoryWithoutSelf(ByVal factoryID As String) As DataTable

    ''' <summary>
    ''' 创建不合格品类别表 Create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddUnqualifiedCategory() As DataTable

    ''' <summary>
    ''' 添加审理单位表 create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddTrialUnit() As DataTable

    ''' <summary>
    ''' 添加零件类别 create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddPartCategory() As DataTable

    ''' <summary>
    ''' 添加责任单位表 create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddDutyUnit() As DataTable

    ''' <summary>
    ''' 添加编码-代码表 create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddEncodeCode() As DataTable
    ''' <summary>
    ''' 获取不属于当前企业的所有分厂
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFactoryWithoutEnterprise() As DataTable
    ''' <summary>
    ''' 根据原因组ID和原因ID获取缺陷序号和短文本描述
    ''' creat：Wangjh
    ''' </summary>
    ''' <param name="strGroupID"></param>
    ''' <param name="strLossReasonID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetLossSequenceAndDesc(ByVal strGroupID As String, ByVal strLossReasonID As String) As DataTable
    ''' <summary>
    ''' 判断当前工序承制分厂是否是本分厂
    ''' create:Wangjh
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsSpecOfCurrentFactory(ByVal workFlowStepID As String, ByVal FactoryID As String) As Boolean

    ''' <summary>
    ''' 查询当前带子序号的批次当前序已派工的子序号 careat tianFW
    ''' </summary>
    ''' <param name="contaienrid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerStepWorkReportChildInfo(ByVal contaienrid As String) As DataTable

    ''' <summary>
    ''' 根据工序ID查询workflowName和workflowVision create tianFW
    ''' </summary>
    ''' <param name="workflowstepid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowNameAndWorkflowVision(ByVal workflowstepid As String) As DataTable

    ''' <summary>
    ''' 根据工序ID获取ControlCode create tianFW
    ''' </summary>
    ''' <param name="WorkflowStepID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetControlCodeByWorkflowStepID(ByVal WorkflowStepID As String) As String

    ''' <summary>
    ''' 获取除固定外委、检验工序的所有工序（或当前序之前的工序） create tianFW
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowStepsWithSpceControlCodeAndCheckStep(ByVal WorkflowID As String, ByVal factroyID As String) As DataTable

    ''' <summary>
    ''' 根据ContainerName获取批次数量、ID create tianfw
    ''' </summary>
    ''' <param name="containername"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerInfobyContainerName(ByVal containername As String) As DataTable

    ''' <summary>
    ''' 获取当前登录用户信息
    ''' create:Wangjh
    ''' </summary>
    ''' <param name="strContainerName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetCurrentUserInfo(ByVal strContainerName As String, ByVal strSessionID As String) As uMESProcessResult

    ''' <summary>
    ''' 获取自然数表  create tianFW
    ''' </summary>
    ''' <param name="strSql"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNaturalNumberDatatable(ByVal strSql As String) As DataTable

    ''' <summary>
    ''' 获取员工的角色信息
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeRoles(ByVal para As Dictionary(Of String, String)) As DataTable
    ''' <summary>
    ''' 根据ContainerName 查询批次是否已经存在 add tianFW2017/08/29
    ''' </summary>
    ''' <param name="value"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function ISExistContainer(ByVal value As String) As DataTable

    ''' <summary>
    ''' 根据父ContainerID查询ContainerID和ContainerName(关闭批次)
    ''' create tianFW 2017/09/04
    ''' </summary>
    ''' <param name="containerID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerInfoByPerContianerID_close(ByVal containerID As String) As DataTable
    ''' <summary>
    ''' 保存属性
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SaveUserAttribute(ByVal para As ContainerStartInfo) As uMESProcessResult
    ''' <summary>
    ''' 设置属性
    ''' create:Wangjh 2017-9-4
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SetUserAttribute(ByVal para As ContainerStartInfo) As uMESProcessResult

    ''' <summary>
    ''' 更新原批次（被变号）的备注信息 create tianFW 2017-09-04
    ''' </summary>
    ''' <param name="Containers"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SetContainerComments(ByVal comments As String, ByVal Containers As String) As Boolean
    ''' <summary>
    ''' 获取批次变更原因
    ''' crete：Wangjh 2017-9-7
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetChangeStatusReason(ByVal para As Dictionary(Of String, String)) As DataTable
    ''' <summary>
    ''' 获取批次数量变更原因
    ''' create:Wangjh 2017-9-7
    ''' </summary>
    Function GetQtyAdjustReason() As DataTable

    ''' <summary>
    ''' 获取工艺路线所属工艺列表 create tianFW 2017/09/11
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowSetpsDetailByWorkflowID(ByVal para As Dictionary(Of String, String)) As System.Data.DataTable

    ''' <summary>
    ''' 获取产品信息 create tianFW 2017/09/12
    ''' </summary>
    ''' <param name="strVaule"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductInfoLikeNameOrREVISION(ByVal strVaule As String)

    ''' <summary>
    ''' 根据员工ID获取员工信息 Create tianFW 2017/09/12
    ''' </summary>
    ''' <param name="EmployeeID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeByEmployeeID(ByVal EmployeeID As String) As DataTable

    ''' <summary>
    ''' 根据员工ID获取ReportPage Create tianFW 2017/09/13
    ''' </summary>
    ''' <param name="employeeID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetReportPageByEmployeeID(ByVal employeeID As String) As DataTable

    ''' <summary>
    ''' 获取所有的ReportPage Create tianFW 2017/09/13
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetReportPageInfo(ByVal para As Dictionary(Of String, String)) As DataTable
    ''' <summary>
    ''' 流水卡扫描
    ''' create:Wangjh 2017-9-14
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function ContainerScan(ByVal containerID As String, ByVal ParamArray obj As Object()) As String

    ''' <summary>
    ''' 获取批次信息扫描后返回的数据（批次togetherflag或containername） create by tianFW 2018年6月8日
    ''' </summary>
    ''' <param name="valuestr">传入的是输入的批次ID或Name,返回的是containertype、workflowstepid（当前序）</param>
    ''' <param name="valuename">传入的是"",返回的是批次名称</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetScanContainerInfoReturnData(ByRef valuestr As String, ByRef valuename As String) As String

    ''' <summary>
    ''' 获取重组工艺新版本号
    ''' </summary>
    ''' <param name="strWorkflow"></param>
    ''' <param name="strRev"></param>
    ''' <remarks></remarks>
    Sub GetNewRecombineWorkflowRev(ByVal strWorkflow As String, ByRef strRev As String)
    ''' <summary>
    ''' 创建工艺路线
    ''' </summary>
    ''' <param name="para"></param>
    ''' <param name="dtStepList"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function CreateWorkflowRev(ByVal para As Dictionary(Of String, String), ByVal dtStepList As DataTable) As ResultStatus

    ''' <summary>
    ''' 根据Spec工序的ID或者版本+名称获取工序信息
    ''' </summary>
    ''' <param name="SpecName">工序名称</param>
    ''' <param name="SpecRev">工序版本</param>
    ''' <param name="SpecID">工序ID</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSpecInfo(ByVal SpecName As String, ByVal SpecRev As String, ByVal SpecID As String)

    ''' <summary>
    ''' 创建工序
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function CreateSpec(ByVal para As Dictionary(Of String, String)) As ResultStatus

    ''' <summary>
    ''' 创建工序createby tianFW  2018年7月23日
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function CreateNewRevSpec(ByVal para As Dictionary(Of String, String)) As ResultStatus

    ''' <summary>
    ''' 更新员工的设备和报表信息 create tianFW　2017/09/15
    ''' </summary>
    ''' <param name="dtResource"></param>
    ''' <param name="dtReportPage"></param>
    ''' <param name="para"></param>
    ''' <param name="strInfo"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>Modify by YangJiang 20180614 ByVal t_Type As String
    Function UpdateUserResourceAndReportPage(ByVal dtResource As DataTable, ByVal dtReportPage As DataTable, ByVal para As Dictionary(Of String, String), ByRef strInfo As String, ByVal t_Type As String) As Boolean

    ''' <summary>
    ''' create tianFW 2017/09/18 删除重组工艺
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function DelWorkflow(ByVal para As Dictionary(Of String, String)) As String

    ''' <summary>
    ''' 根据workflowid 获取在Historymainline有多少行数据 create tianFW 2017/09/18
    ''' </summary>
    ''' <param name="workflowid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetcountinHistorymainline(ByVal workflowid As String) As DataTable

    ''' <summary>
    ''' 根据workflowID获取workflow Info create tianFW 2017/09/18
    ''' </summary>
    ''' <param name="workflowid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowInfobyWorkflowID(ByVal workflowid As String) As DataTable

    ''' <summary>
    ''' 更新Spec表的NC信息  create tianFW 2017/09/26
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateSpecNCInfo(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 获取汇总表中的工序检信息 create tianFW 2017/09/29
    ''' </summary>
    ''' <param name="Containerid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetStepCheckNum(ByVal Value As String, ByVal Containerid As String) As DataTable

    ''' <summary>
    ''' 更新分批之后新批次的TOGETHERFLAG create tianFW 2017/09/29
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateSplitContainerTogeTherFlag(ByVal containername As String) As Boolean

    ''' <summary>
    ''' 获取工艺上的班组信息
    ''' </summary>
    ''' <param name="workflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowTeam(ByVal workflowID As String) As DataTable

    ''' <summary>
    ''' 查询工艺信息
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowinfo(ByVal para As Dictionary(Of String, String)) As uMESProcessResult

    ''' <summary>
    '''更新工艺上的班组信息
    ''' </summary>
    ''' <param name="workflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateWorkFlowStepTeam(ByVal workflowID As String, ByVal teamID As String) As Boolean

    ''' <summary>
    ''' 获取工序关键过程控制文档信息 create tianFW 2017/10/17
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowSetpsOfKeyProcessByWorkflowID(ByVal strWorkflowID As String, ByVal strWorkflowStepID As String) As System.Data.DataTable

    ''' <summary>
    ''' 添加工序与关键过程文档控制的关联信息 createtianFW 2017/10/17
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function AddKeyProcessControlDocStepInfo(ByVal keyProcessControlDocID As String, ByVal workflowStepID As String) As Boolean

    ''' <summary>
    ''' 根据工序ID删除工序与关键过程文档控制的关联信息 create tianFW 2017/10/17
    ''' </summary>
    ''' <param name="workflowStepIDs"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function DelKeyProcessControlDocStepInfo(ByVal workflowStepIDs As String) As Boolean

    ''' <summary>
    ''' 通过WorkflowStepID获取工序信息 create tianFW 2017/10/22
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowSetpsByWorkflowStepID(ByVal WorkflowStepID As String) As System.Data.DataTable

    ''' <summary>
    ''' 更新工艺是否存在图纸的状态 create tianFW 2017/10/24
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateWFIsExitPrint(ByVal workflowid As String, ByVal value As String)

    ''' <summary>
    ''' 更新工艺的ZGEMPLOYEEID create tianFW 2017/10/26
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateWorkflowInfo(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 根据工艺name和Rev获取工艺信息 createtianFW 2017/10/26
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowInfoByNameAndRev(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 获取已经存在的订单信息 create tianfW 2017/10/31
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistMfgOrderInfo(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 根据订单ID获取该订单已创建的批次的类型 create tianFW 2017/10/31
    ''' </summary>
    ''' <param name="MfgOrderID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerTypeByMfgOrderID(ByVal MfgOrderID As String) As DataTable

    ''' <summary>
    ''' 根据件号Name查询件号在数据库中是否存在 create tianFW 2017/10/31
    ''' </summary>
    ''' <param name="ProductNames"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistProduct(ByVal ProductNames As String) As DataTable

    ''' <summary>
    ''' 根据车间Name查询车间在数据库中是否存在 create tianFW 2017/10/31
    ''' </summary>
    ''' <param name="FactotryNames"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistFactotry(ByVal FactotryNames As String) As DataTable

    ''' <summary>
    ''' 根据车间Name和工区Name查询工区在数据库中是否存在 create tianFW 2017/10/31
    ''' </summary>
    ''' <param name="WorkCenterNames"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistWorkCenter(ByVal WorkCenterNames As String) As DataTable

    ''' <summary>
    ''' 根据件号获取默认件号版本 create tianFW 2017/11/01
    ''' </summary>
    ''' <param name="ProductName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetDefaultProductInfo(ByVal ProductName As String) As DataTable

    ''' <summary>
    ''' 根据工艺Name获取默认的工艺信息 create tianFW2017/11/01
    ''' </summary>
    ''' <param name="workflowname"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetDefaultWorkflowInfo(ByVal workflowname As String) As DataTable

    ''' <summary>
    ''' 获取订单类型是否存在的表 create tianFW 2017/11/2
    ''' </summary>
    ''' <param name="mfgTypes"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistMfgType(ByVal mfgTypes As String) As DataTable

    ''' <summary>
    ''' 获取批次超越单信息
    ''' create:Wangjh 20171123
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function QuerySurpassBillInfo(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 根据工艺ID获取工艺名称
    ''' create:Wangjh 20171123
    ''' </summary>
    ''' <param name="workfLowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowNameByWorkFLowID(ByVal workfLowID As String) As DataTable

    ''' <summary>
    ''' 根据超越单ID获取附件信息
    ''' create:Wangjh 20171124
    ''' </summary>
    ''' <param name="surpassBillInfoID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSurpassAccessories(ByVal surpassBillInfoID As String) As DataTable

    ''' <summary>
    ''' 根据workflowstepid获取specname
    ''' create:Wangjh 20171127
    ''' </summary>
    ''' <param name="workflowStepID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSpecNameByWorkflowStepID(ByVal workflowStepID As String) As DataTable

    ''' <summary>
    ''' 获取批量类型的批次大批次号是否已存在 create tianFW 2017/11/2
    ''' </summary>
    ''' <param name="value"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsExistTogetherFlag(ByVal value As String) As DataTable

    ''' <summary>
    ''' 更新采购计划某些信息根据某些条件
    ''' </summary>
    ''' <param name="updatePara"></param>
    ''' <param name="conditionPara"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateTableByField(ByVal tableName As String, ByVal updatePara As Dictionary(Of String, Object), ByVal conditionPara As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 服务汇总表中是否有拆分的批次信息存在 create tianFW 2017年11月14日
    ''' </summary>
    ''' <param name="containerid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsContainerExistINContainerCurrent(ByVal containerid As String) As DataTable

    ''' <summary>
    ''' 创建或插入导入数据的结果信息 create tianFW 2017年11月15日
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetImportInfo(ByVal tableName As String, ByVal para As Dictionary(Of Integer, Dictionary(Of String, String)), ByVal maxindex As Integer, ByVal list As Dictionary(Of Integer, String)) As Boolean

    ''' <summary>
    ''' 删除表 create tianFW 2017年11月16日
    ''' </summary>
    ''' <param name="tablename"></param>
    ''' <remarks></remarks>
    Sub DeleteImportInfo(ByVal tablename As String)

    ''' <summary>
    ''' 获取工区中的班次信息 createtianFW 2017年11月22日(ZS) 
    ''' </summary>
    ''' <param name="workcenterID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetShiftInfoByWorkcenterID(ByVal workcenterID As String) As DataTable

    ''' <summary>
    ''' 根据班次ID获取班组信息 create tianFW 2017年11月23日
    ''' </summary>
    ''' <param name="shiftID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTeamByShiftID(ByVal shiftID As String) As DataTable


    ''' <summary>
    ''' 根据工区ID获取班组信息 create YangJiang 20180614
    ''' </summary>
    ''' <param name="WorkcenterID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTeamByWorkcenterID(ByVal WorkcenterID As String) As DataTable

    ''' <summary>
    ''' 根据工序WorkflowStepIDs获取工步信息 create tianFW 2017年11月29日
    ''' </summary>
    ''' <param name="workflowStepIDs">工序IDs</param>
    ''' <param name="containerid">批次id</param>
    ''' <param name="workerID">工人id</param>
    ''' <param name="type">查询类型 string "1"-未派工 "2"-已派工</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetStepInfo_InfoByWorkflowStepIDs(ByVal workflowStepIDs As String, ByVal containerid As String, ByVal workerID As String, ByVal type As String, Optional ByVal isZs As Boolean = False) As DataTable

    ''' <summary>
    ''' 获取工艺下面的bom信息ByworkflowID create tianFW 2017年12月4日
    ''' </summary>
    ''' <param name="workflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBomByWorkflowID(ByVal workflowID As String) As DataTable

    ''' <summary>
    ''' 获取件号下面的bom信息ByProductID create tianFW 2017年12月5日
    ''' </summary>
    ''' <param name="ProductID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBomByProductID(ByVal ProductID As String) As DataTable

    ''' <summary>
    ''' 模糊查询出批次的信息
    ''' create:Wangjh 20171212
    ''' </summary>
    ''' <param name="strContainerName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerByLikeContainerName(ByVal strContainerName As String) As DataTable

    ''' <summary>
    ''' 根据工艺ID获取工艺的最后一道序
    ''' create:Wangjh 20171221
    ''' </summary>
    ''' <param name="workFlowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetLastWorkFlowStepByWorkFlowID(ByVal workFlowID As String) As DataTable

    ''' <summary>
    ''' 获取工序的子工艺信息
    ''' create：Wangjh 20171221
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSubWorkFlowInfoByStep(ByVal para As System.Collections.Generic.Dictionary(Of String, String)) As DataTable

#Region "获取所选产品版本的BOM信息"
    Function GetBomByProduct(ByVal productname As String, ByVal revision As String) As DataTable
#End Region

    ''' <summary>
    ''' 获取产品BOM明细
    ''' </summary>
    ''' <param name="productID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBomDetailByProductID(ByVal productID As String) As DataTable

    ''' <summary>
    ''' 获取单位信息 create tianFW 2017年12月13日
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetUom() As DataTable

    ''' <summary>
    ''' 获取工艺上的机型 create tianFW 2017年12月19日
    ''' </summary>
    ''' <param name="workflowid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowPorductFamily(ByVal workflowid As String) As DataTable

    ''' <summary>
    ''' 根据ContainerID获取汇总表中的批次数量，报工数量，报废数量
    ''' </summary>
    ''' <param name="containerid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetCurrentInfoByContainerID(ByVal containerid As String) As DataTable

    ''' <summary>
    ''' 通过工区ID查询工区信息 create tianFW 2018年1月17日
    ''' </summary>
    ''' <param name="WorkCenterID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterInfoByWorkCenterID(ByVal WorkCenterID As String) As DataTable

    ''' <summary>
    ''' 通过班组ID查询班组信息 create tianFW 2018年1月17日
    ''' </summary>
    ''' <param name="TeamID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTeamInfoByTeamID(ByVal TeamID As String) As DataTable

    ''' <summary>
    ''' 获取工序是否是固定检验序 add by tianFW 2018年2月5日
    ''' </summary>
    ''' <param name="stepid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetStepLastCheck(ByVal stepid As String) As DataTable

    ''' <summary>
    ''' 根据厂别获取Bom明细 Add by Yuxj20180129
    ''' </summary>
    ''' <param name="productID"></param>
    ''' <param name="factoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBomDetailByProductID(ByVal productID As String, ByVal factoryID As String) As DataTable

    ''' <summary>
    ''' 根据工序ID获取工步信息 add by yuxj 20171228 装试项目
    ''' </summary>
    ''' <param name="stepid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetStepinfoDt(ByVal stepid As String) As DataTable

    ''' <summary>
    ''' 获取员工所属工区create by tianFW 2018年2月7日
    ''' </summary>
    ''' <param name="EmployeeID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeWorkCenterInfo(ByVal EmployeeID As String) As DataTable

    ''' <summary>
    ''' 移动批次到下一序并且进入固定外委或固定转工 create tianFW 2018年4月10日
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function MoveToNextStepAndFixCommissionOrFixShip(ByVal para As Dictionary(Of String, Object), ByRef message As String) As Boolean

    ''' <summary>
    ''' 获取没有检验记录的下一序 create tianFW 2018年3月5日
    ''' </summary>
    ''' <param name="containerid">当前批次id</param>
    ''' <param name="workflowid">当前工艺id</param>
    ''' <param name="Sequence">当前序序号</param>
    ''' <param name="isexistcount">后面序存在检验记录、转工、外委记录的次数</param>
    ''' <param name="isSubWorkflow">当前工艺是否子工艺</param>
    ''' <param name="factoryid" >批次所属分厂ID</param>\
    ''' <param name="isShip" >批次是否转工已接收</param>
    ''' <returns>符合条件的下一序的名称和ID以及此序的工艺信息</returns>
    ''' <remarks>1.如果isexistcount=0，则说明返回的是批次下一序就是当前工艺当前序的下一序；返回的是批次下一序及当前序下一序的工序名称、序号和ID
    ''' 2.如果isexistcount=0 且返回的值拆分后长度>2，则说明下一序的工艺改变了；
    ''' 传回了批次下一序的工序名称、ID、序号以及工艺名称、版本和ID和子工艺承制分厂,移动isexistcount+1次后到达该序；
    ''' 3.如果长度=2，则说明工艺路线没变，但是批次下一序不是工序的下一序，移动isexistcount+1之后才能到达该序，返回批次下一序的工序名称、序号和ID</remarks>
    Function GetNextStepNoCheckInfo(ByVal containerid As String, ByRef Sequence As Integer, ByRef workflowid As String, ByRef isexistcount As Integer, ByRef isSubWorkflow As Boolean, ByVal factoryid As String, ByVal isShip As Boolean) As String

    ''' <summary>
    ''' '根据批次和子工艺路线获取父工艺信息 create tianFW  2018年3月8日
    ''' </summary>
    ''' <param name="containerid"></param>
    ''' <param name="subworkflowid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetFatherWorkflowInfo(ByVal containerid As String, ByVal subworkflowid As String)

    ''' <summary>
    ''' 获取批次下一序进入固定转工的工艺ID、工序序号、工序ID create tianFW 2018年3月8日
    ''' </summary>
    ''' <param name="para">批次当前工艺ID、当前工序ID、当前用户分厂ID</param>
    ''' <param name="containerid_">批次ID</param>
    ''' <param name="isSubWorkflow">批次当前工艺是否为子工艺</param>
    ''' <param name="workflowid_">批次下一序所在工艺ID</param>
    ''' <param name="sequence_">批次下一序所在工艺的序号</param>
    ''' <param name="strValueStepID">批次下一序的工序ID</param>
    ''' <remarks></remarks>
    Function GetFixShipWorkflowStepInfo(ByVal para As Dictionary(Of String, String), ByVal containerid_ As String, ByVal isSubWorkflow As Boolean, ByRef workflowid_ As String, ByRef sequence_ As Integer, ByRef strValueStepID As String) As String

    ''' <summary>
    ''' 获取批次未加工完的工序
    ''' add:Wangjh 2018-3-2
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetContainerNoCompleteStep(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 检查主卡是否应该移动并返回参数
    ''' add:Wangjh 20181205
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function CheckFaContainerAndReturnMoveInfo(ByVal para As Dictionary(Of String, String), ByRef resMsg As String) As Dictionary(Of String, String)

    ''' <summary>
    ''' 获取员工列表
    ''' Create YangJiang
    ''' </summary>
    Function GetEmployee(ByVal workcenterID As String, ByVal factoryID As String) As System.Data.DataTable

    ''' <summary>
    ''' 根据员工ID查询已有的设备数量  add by YangJiang  20180208
    ''' </summary>
    ''' <param name="EmployeeID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetResourceCountByEmployeeid(ByVal EmployeeID As String) As DataTable

    ''' <summary>
    ''' 根据员工ID查询已有的报表数量  add by YangJiang  20180208
    ''' </summary>
    ''' <param name="EmployeeID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetReportPageCountByEmployeeid(ByVal EmployeeID As String) As DataTable

    Function GetResourceDefByemployeeid1(ByVal employeeid() As String) As DataTable

    Function GetReportPageByEmployeeID1(ByVal employeeID() As String) As DataTable

    ''' <summary>
    ''' 获取件号默认以及其他版本的工艺路线信息 create by tianFW 2018年8月2日
    ''' </summary>
    ''' <param name="para"></param>
    ''' <param name="GetChildWF"></param>
    ''' <param name="IsThisFactory"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductAllRevWFInfo(ByVal para As Dictionary(Of String, String), ByVal GetChildWF As Boolean, ByVal IsThisFactory As Boolean) As DataTable

    ''' <summary>
    ''' 获取件号下默认工艺以及其他版本工艺和默认工艺子工艺信息、件号历史使用的其他工艺 create tianFW 2018年3月15日
    ''' </summary>
    ''' <param name="para"></param>
    ''' <param name="GetChildWF">是否显示子工艺工艺路线</param>
    ''' <param name="IsThisFactory">是否只显示当前分厂工艺</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowInfoWithOtherAndSubByProductInfo(ByVal para As Dictionary(Of String, String), ByVal GetChildWF As Boolean, ByVal IsThisFactory As Boolean) As DataTable

    ''' <summary>
    ''' 通过件号id在工艺、件号中间表获取工艺信息 create tianFW 
    ''' </summary>
    ''' <param name="productid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowInfoByProductID(ByVal productid As String) As DataTable

    ''' <summary>
    ''' 根据班获取员工信息(ZS) Create:YangJiang  20180320
    ''' </summary>
    ''' <param name="ShiftID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeInfoByShiftID(ByVal ShiftID As String, ByVal FactoryID As String, ByVal WorkcenterID As String) As DataTable


    ''' <summary>
    ''' 获取工艺的所有子工艺信息合并之后
    ''' add:Wangjh 20180322
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSubWorkFlowInfoOfWorkFlow(ByVal para As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 修改批次的主制工区信息 create tianFW 2018年3月29日
    ''' </summary>
    ''' <param name="ContainerID">批次id</param>
    ''' <param name="WorkCenterID">工区id</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function ChangeWorkCenter(ByRef ContainerID As String, ByVal WorkCenterID As String, ByRef message As String) As Boolean

    ''' <summary>
    ''' 判断批次工序是否是最后序
    '''  create:Wangjh 20180409
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function IsLastStep(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 查询所有看板  Create:YangJiang 20180410
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSubReportKanban() As DataSet

    ''' <summary>
    ''' 更新关闭批次的变号创建的新批次名字 create tianFW 2018年4月18日
    ''' </summary>
    ''' <param name="containerID"></param>
    ''' <param name="containerName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateCloseContianerNewContainerName(ByVal containerID As String, ByVal containerName As String) As Boolean

    ''' <summary>
    ''' 根据工艺规程编号获取对应的超越单信息 create tianFW 2018年4月24日
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSupPassInfoByWorkflowProcessNO(ByVal ProcessNO As String) As DataSet

    ''' <summary>
    ''' Add by Yuxj20180328获取装试发动机工艺路线
    ''' </summary>
    ''' <param name="FlowName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEngineWorkFlow(ByVal FlowName As String) As DataTable

    ''' <summary>
    ''' Add by Yuxj20180423 从Container和enginepartplan 获取批次最大序号
    ''' </summary>
    ''' <param name="strPrefix"></param>
    ''' <param name="numberLength"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetNewContainerPlanNextIndex(ByVal strPrefix As String, ByVal numberLength As Integer) As Integer

    ''' <summary>
    ''' 根据产品和分厂查询工艺路线（分厂可能是主工艺的分厂或子工艺的分厂）
    '''add:Wangjh 20180607
    ''' </summary>
    ''' <param name="strProductID"></param>
    ''' <param name="strFactoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowByProductID(ByVal strProductID As String, ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 获取本分厂下所有的班 add YangJiang 20180620
    ''' </summary>
    ''' <param name="strFactoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetShiftByFactoryID(ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 获取本分厂下所有的班组 add YangJiang 20180620
    ''' </summary>
    ''' <param name="strFactoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTeamByFactoryID(ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 判断该分厂的班、组维护属性是否为'是' add YangJiang 20180620
    ''' </summary>
    ''' <param name="strFactoryID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTeamOrShiftByFactoryID(ByVal strFactoryID As String) As DataTable

    ''' <summary>
    ''' 查询该工区下不属于任何班组的人员 add YangJiang 20180622
    ''' </summary>
    ''' <param name="strWorkcenterID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeNoTeamByWorkcenterID(ByVal strWorkcenterID As String) As DataTable

    ''' <summary>
    ''' 查询该班下不属于任何组的人员 add YangJiang 20180622
    ''' </summary>
    ''' <param name="strShiftID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEmployeeNoTeamByShiftID(ByVal strShiftID As String) As DataTable

    ''' <summary>
    ''' 更新班所属工区 add YangJiang 20180625
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateShiftByShiftID(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 更新人员信息 add YangJiang 20180625
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateEmployeeInfo(ByVal para As Dictionary(Of String, String), ByVal dt As DataTable, ByVal strInfo As String) As Boolean

    ''' <summary>
    ''' 更新班组/组信息 add YangJiang 20180625
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateTeamInfo(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 获取所选产品版本的材质信息
    ''' </summary>
    ''' <param name="productname"></param>
    ''' <param name="revision"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetMaterialByProduct(ByVal productname As String, ByVal revision As String) As DataTable


    ''' <summary>
    ''' 获取工艺路线所属工艺列表 create tianFW 2017/09/11
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowSetpsViewDetailByWorkflowID(ByVal para As Dictionary(Of String, String)) As System.Data.DataTable

    ''' <summary>
    ''' 根据ID获取workflow信息
    ''' </summary>
    ''' <param name="strID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkflowInfoByID(ByVal strID As String) As uMESProcessResult

    ''' <summary>
    ''' 获取配套表BOM
    ''' </summary>
    ''' <param name="bomid"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBOM(ByVal bomid As String) As DataTable

    ''' <summary>
    ''' 根据bomname获取bom信息 create by tianFW 2018年9月28日
    ''' </summary>
    ''' <param name="bomname"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetBomInfoByName(ByVal bomname As String) As DataTable

    ''' <summary>
    ''' 获取工艺版本制定的工艺员及工艺所属分厂 add YangJiang 20180627
    ''' </summary>
    ''' <param name="strWorkFlowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowEmpAndFactoryByWorkFlowID(ByVal strWorkFlowID As String) As DataTable

    ''' <summary>
    ''' 获取工种信息 create by tianFW 2018年7月23日
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetOperationInfo() As DataTable

    ''' <summary>
    ''' 创建工艺路线 create by Yangsj 20180702
    ''' </summary>
    ''' <param name="para"></param>
    ''' <param name="dtStepList"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SaveWorkflow(ByVal para As Dictionary(Of String, String), ByVal dtStepList As DataTable) As ResultStatus
    ''' <summary>
    ''' 创建工步 create by Yangsj 20180702
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SaveStepInfo(ByVal para As Dictionary(Of String, String)) As ResultStatus

    ''' <summary>
    ''' 获取工序类型 create by Yangsj 20180702
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSpecType() As DataTable

    ''' <summary>
    ''' 保存工序 create by Yangsj 20180702
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SaveStep(ByVal para As Dictionary(Of String, String)) As ResultStatus
    ''' <summary>
    ''' 查询发动机 create by Yangsj 20180705
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEngineNO(ByVal para As Dictionary(Of String, String)) As uMESProcessResult

    ''' <summary>
    ''' 获取机型列表
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetProductFamilyByPage(ByVal para As System.Collections.Generic.Dictionary(Of String, String)) As uMESProcessResult

    ''' <summary>
    ''' 获取施工工艺列表  Create by Yangsj 20180705
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTempWorkflow(ByVal para As System.Collections.Generic.Dictionary(Of String, String)) As uMESProcessResult


    ''' <summary>
    ''' 根据件号获取分段件号信息 create by tianFW 
    ''' </summary>
    ''' <param name="productname">件号名称</param>
    ''' <param name="productID">件号ID</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSubsectionProductInfo(ByVal productname As String, ByVal productID As String) As DataTable

    ''' <summary>
    ''' Add by Yuxj20180730 获取排故类型
    ''' </summary>
    ''' <param name="strGroupName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetReworkReasonByGroupName(ByVal strGroupName As String) As DataTable

    ''' <summary>
    ''' add YangJiang 20180802 获取企业下的角色
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetEnterpriseRole() As DataTable

    ''' <summary>
    ''' 获取暂停或释放批次原因 create by tianFW 2018年8月22日
    ''' </summary>
    ''' <param name="type">1 暂停原因，0 释放原因</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetHoldOrReleaseReason(ByVal type As Integer) As DataTable
    ''' <summary>
    ''' create by YangSJ 2018年11月05日
    ''' 获取用户信息，返回CurrentUserInfo
    ''' </summary>
    ''' <param name="strEmployeeName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetUserInfo(ByVal strEmployeeName As String, ByVal strSessionID As String) As CurrentUserInfo

    ''' <summary>
    ''' Add by Yuxj20181207
    ''' 施工单创建时记录组
    ''' </summary>
    ''' <param name="wfid"></param>
    ''' <param name="dr"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateTeamIdByStepAndWfId(ByVal wfid As String, ByVal dr As DataRow) As Boolean

    ''' <summary>
    ''' 插入新的件号工艺关联关系  create by tianFW 2018年12月8日
    ''' </summary>
    ''' <param name="productID">件号ID</param>
    ''' <param name="workflowID">工艺ID</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function InsertIntoProMappingWF(ByVal productID As String, ByVal workflowID As String) As Boolean

    ''' <summary>
    ''' 根据组Id获取工区和班 Modify by Yuxj20181213
    ''' </summary>
    ''' <param name="teamId"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetShiftAndWorkcenterByTeamid(ByVal teamId As String) As DataTable
    ''' <summary>
    ''' 查询表信息根据条件
    ''' add:Wangjh 20190117
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="conditionFiled"></param>
    ''' <param name="conditionFiledValue"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTableInfo(ByVal tableName As String, ByVal conditionFiled As String, ByVal conditionFiledValue As String) As DataTable

    ''' <summary>
    ''' 插入表
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function InsertTableInfo(ByVal tableName As String, ByVal para As Dictionary(Of String, Object)) As Boolean
    Function FillInsertTableInfo(ByVal tableName As String, ByVal para As Dictionary(Of String, Object)) As String
    ''' <summary>
    ''' 删除表，根据条件
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="conditionPara"></param>
    ''' <param name="conditionLikePara"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function DeleteTableByField(ByVal tableName As String, ByVal conditionPara As Dictionary(Of String, String), ByVal conditionLikePara As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 查询表数据根据某些条件
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="conditionPara"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetTableInfoByField(ByVal tableName As String, ByVal conditionPara As Dictionary(Of String, String), ByVal conditionLikePara As Dictionary(Of String, String)) As DataTable

    ''' <summary>
    ''' 查询表数据根据某些条件,分页查询
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="conditionPara"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetPageTableInfoByField(ByVal tableName As String, ByVal conditionPara As Dictionary(Of String, String), ByVal conditionLikePara As Dictionary(Of String, String), ByVal currentPage As Integer, ByVal pageSize As Integer) As uMESProcessResult

    ''' <summary>
    ''' 更新表的某些字段，根据条件
    ''' add:Wangjh 2018/1/28
    ''' </summary>
    ''' <param name="tableName"></param>
    ''' <param name="updatePara"></param>
    ''' <param name="conditionPara"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function updateTableInfo(ByVal tableName As String, ByVal updatePara As Dictionary(Of String, String), ByVal conditionPara As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 获取工区对应员工 Add by Yuxj20190123
    ''' </summary>
    ''' <param name="WorkCenterID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkCenterEmployeeInfo(ByVal WorkCenterID As String) As DataTable
    ''' <summary>
    ''' 通过API更新工艺信息
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function UpdateWorkflowInfoByApi(ByVal para As Dictionary(Of String, Object)) As ResultStatus

    ''' <summary>
    ''' 获取工装工具信息
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetToolData(ByVal para As Dictionary(Of String, String)) As uMESProcessResult

    ''' <summary>
    ''' Add by Yuxj20200418
    ''' 获取管理者标准作业页面人员列表
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetSealimgurlEmployeeData(ByVal para As Dictionary(Of String, String)) As DataTable

    'Modify by Yuxj20200603施工单信息查询
    Function GetTempWorkFlowData(ByVal wfid As String) As DataTable
    Function GetRecombineTempWorkFlowData(ByVal para As Dictionary(Of String, String)) As DataSet


    '''create by Yangsj 20200825
    '''获取子工艺批次初始数量，取主工艺对应工序上一序的检验合格数
    Function GetSonContainerStarQty(ByVal facontainername As String, ByVal sonworkflowid As String) As String

    Function GetSubWorkflowInfo(ByVal para As Dictionary(Of String, String)) As DataTable

    Function JudeContainerHold(ByVal containerId As String, ByRef strMsg As String) As Boolean

    Function SaveWorkflowRecombineAttrData(ByVal oldWorkflowId As String, ByVal newWorkflowId As String) As Boolean

    ''' <summary>
    ''' 插入附件 add by zhangrj 2022-10-21
    ''' </summary>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SaveObjectFileInfo(ByVal para As Dictionary(Of String, String)) As Boolean

    ''' <summary>
    ''' 获取工步信息（通过工艺ID） add by zhangrj 20230628
    ''' </summary>
    ''' <param name="workflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetStepinfoByWorkflowID(ByVal workflowID As String) As DataTable

    ''' <summary>
    ''' 插入功能操作日志表 add by zhangrj 20231201
    ''' </summary>
    ''' <param name="parentID"></param>
    ''' <param name="employeeID"></param>
    ''' <param name="notes"></param>
    ''' <param name="type"></param>
    ''' <remarks></remarks>
    Sub InsertCommonMethodOperaLogInfo(ByVal parentID As String, ByVal employeeID As String, ByVal notes As String, ByVal type As String)
    ''' <summary>
    ''' 获取插入功能操作日志表sql add by zhangrj 20240105
    ''' </summary>
    ''' <param name="parentID"></param>
    ''' <param name="employeeID"></param>
    ''' <param name="notes"></param>
    ''' <remarks></remarks>
    Function GetInsertCommonMethodOperaLogSql(ByVal parentID As String, ByVal employeeID As String, ByVal notes As String, ByVal type As String) As String
    ''' <summary>
    ''' 获取操作日志 add by zhangrj 20231206
    ''' </summary>
    ''' <param name="parentID"></param>
    ''' <param name="type"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetCommonMethodOperaLogData(ByVal parentID As String, ByVal type As String) As DataTable

    ''' <summary>
    ''' 获取工艺路线的工序和子工序 add by duht 20240702
    ''' </summary>
    ''' <param name="strWorkflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowAndSonSPec(ByVal strWorkflowID As String) As DataTable

    ''' <summary>
    ''' 获取工艺路线的工序和子工序 add by duht 20240702
    ''' </summary>
    ''' <param name="strWorkflowID"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetWorkFlowOtherVersionAndSonSPec(ByVal strWorkflowID As String) As DataTable

    ''' <summary>
    ''' 插入推送数据中心数据变更表 add by zhangrj 20240905
    ''' </summary>
    ''' <param name="dtData"></param>
    ''' <param name="tableName"></param>
    ''' <param name="uniqueColName"></param>
    ''' <param name="toAppId"></param>
    ''' <param name="opType">1：新增，2：更新，3：删除</param>
    ''' <param name="isExcute">是否直接执行sql</param>
    ''' <remarks></remarks>
    Function InsertSyncTableChangeRecode(ByVal dtData As DataTable, ByVal tableName As String, ByVal uniqueColName As String, ByVal toAppId As String, ByVal opType As Integer, Optional ByVal isExcute As Boolean = True) As ArrayList


End Interface
